-- *** 판매 게시판 테이블 SQL Query ***

-- safari_member 테이블 생성(TEST)
create table safari_member(
	id varchar2(20) primary key
)

drop table safari_member;

-- safari_sellboard 테이블 생성
create table safari_sellboard(
	sell_no number  primary key, -- 판매게시판 글 번호
	sell_content varchar2(3000) not null, -- 판매게시판 글 내용
	sell_title varchar2(50) not null, -- 판매게시판 글 제목
	sell_time_posted date not null, -- 판매게시판 글 작성시간
	sell_hits number default 0, -- 판매게시판 글 조회수
	sell_status varchar2(50) default '판매중', -- 판매게시판 상품 판매여부
	sell_org_filename varchar2(50), -- 판매게시판 사진파일 원본 이름
	sell_dest_filename varchar2(50), -- 판매게시판 사진파일 변경된 이름 
	sell_product_name varchar2(50) not null, -- 판매게시판 상품명
	sell_product_price number not null, -- 판매게시판 상품 가격
	sell_trade_area varchar2(50) not null, -- 판매게시판 거래가능 지역
	id varchar2(20) not null, -- 외래키 회원 아이디 : safari_member 테이블의 기본키 참조
	constraint fk1_safari_member_id foreign key(id) references safari_member(id)
)

-- safari_sellboard 테이블 조회
select * from safari_sellboard;

-- safari_sellboard 테이블 삭제
drop table safari_sellboard;

-- 제약조건 삭제
alter table safari_sellboard drop constraint fk_safari_member_id;

-- safari_sellboard_seq 시퀀스 생성
create sequence safari_sellboard_seq nocache;

-- safari_sell_board_seq 시퀀스 조회
select safari_sellboard_seq.nextval from dual;
select safari_sellboard_seq.currval from dual;

-- safari_sellboard_seq 시퀀스 삭제
drop sequence safari_sellboard_seq;

-- safari_trade_history 테이블 생성
create table safari_trade_history(
	trade_history_no number  primary key, -- 전체거래내역 글번호
	time_traded date not null, -- 전체거래내역 거래된 시간
	trade_seller varchar2(50) not null, -- 전체거래내역 판매자
	trade_buyer varchar2(50) not null, -- 전체거래내역 구매자
	sell_no number not null, -- 외래키 판매게시판 글 번호 : safari_sellboard 테이블의 기본키 참조
	constraint fk_safari_sell_no foreign key(sell_no) references safari_sellboard(sell_no)
)

-- 제약조건 삭제
alter table safari_trade_history drop constraint fk_safari_sell_no;

-- safari_trade_history 테이블 조회
select * from safari_trade_history;

-- safari_trade_history 테이블 삭제
drop table safari_trade_history;

-- safari_trade_history 시퀀스 생성
create sequence safari_trade_history_seq nocache;

-- safari_trade_history 시퀀스 조회
select safari_trade_history_seq.nextval from dual;
select safari_trade_history_seq.currval from dual;

-- safari_trade_history 시퀀스 삭제
drop sequence safari_trade_history_seq;


-- safari_member 테이블에 데이터 입력
insert into safari_member(id) values('java');

-- safari_sellboard 테이블에 데이터 입력
insert into safari_sellboard
	(sell_no, sell_content, sell_title, sell_time_posted, sell_org_filename, sell_dest_filename, 
	sell_product_name, sell_product_price, sell_trade_area, id)
		values(safari_sellboard_seq.nextval, '테스트', '테스트', sysdate,
		'원본파일명', '변경파일명', '노트북', 1000, '서울', 'java');

-- safari_sellbaord 테이블 조회(페이징 빈 적용한 목록 조회)
select sell_no, sell_title, id, name, sell_time_posted, sell_hits
	from(
	select sell_no, sell_title, id, name, sell_time_posted, sell_hits, ceil(rownum/5) as page 
		from(
		select s.sell_no, s.sell_title, m.id, m.name, s.sell_time_posted, s.sell_hits 
			from safari_sellboard s, safari_member m
				where s.id=m.id
				order by sell_no desc)
					)where page=1;

-- safari_sellboard 테이블의 전체 튜플 갯수 조회
select count(*) from safari_sellboard;
		
		
